package com.dream.wukong.common.core.interfaces.dao;

/**
 * @Author: wuyichao
 * @Description:
 * @Date: Created in 10:47 2018/9/18.
 * @Modified:
 */

import java.io.Serializable;

/**
 * 基础数据访问接口，提供通用的数据访问操作
 */
public interface IBaseDao<T extends BaseEntity<PK>, PK extends Serializable> extends IQueryDao<T, PK>, IBatchDao<T, PK>{
    /**
     * 将一个实体持久化到数据库中
     */
    T save(T entity);

    /**
     * 合并实体的当前值
     */
    void saveOrUpdate(T entity);

    /**
     * 修改一个实体的属性值
     */
    void update(T entity);

    /**
     * 删除一个实体
     */
    void delete(T entity);

    /**
     * 通过ID删除一个实体
     */
    void delete(PK id);

}

